An arbiter is a decision making device that outputs one event out of two or more asynchronous occurring events. In simple case scenario, the arbiter is used when two input events arrive with a sufficient time gap, so it is easy to select an output event out of these incoming input events.
FIG. 1 illustrates a block diagram of a conventional arbiter 102. The conventional arbiter 102 processes two asynchronous requests A and B to provide an output (A1 or B1). The working of the conventional arbiter 102 is explained in the following section.
FIG. 2 illustrates a circuit diagram of the conventional arbiter 102. A MUTual EXclusion (MUTEX) logic can be most commonly used for implementing an arbiter circuit. The arbiter 102 includes a first NAND element 202, a second NAND element 204, a first flag generation inverter 206 and a second flag generation inverter 208. When there is a wide time gap between the occurrences of two asynchronous requests, the arbiter 102 turns on a flag for the first request while keeping the second flag low. But when two requests occur very closely then the arbiter 102 can move into a metastability state and in this case the output of the arbiter 102 will be unpredictable with an unpredictable delay.
When any input A (B) goes high at the first NAND element 202 (204), while the other input B (A) is low, the output (such as A_nand (B_nand)) of the corresponding NAND 202 (204) goes low, thereby causing a flag_A (flag_B) to move high. This in turn blocks any subsequent change happening on the input B (A) from impacting this flag state. This flag state remains intact as long as the input A (B) remains high. Further, the flag generation inverter 206 (208) is powered by the input of the other similar inverter 208 (206) and vice versa, so as to avoid any accidental glitch on the unintended NAND 204 (202) output from being transferred to the respective flag during metastability state as the PMOS will not witness the required gate overdrive voltage.
However, the MUTEX logic of the arbiter 102 can predict metastability problems depending on the occurrence interval of the inputs (A or B). If both the inputs A and B rise very closely or simultaneously, the output from both the NAND elements 202 and 204 starts falling. Eventually the output get resolved in opposite directions depending upon the arrival time difference of the inputs A and B and gain factor of the NAND elements 202 and 204. In this situation, the output flag from the inverters 206 and 208 will be unpredictable and might appear after an unpredictable time.
FIG. 3 illustrates a generalized timing diagram for analyzing a conventional arbitration technique. For a MUTEX logic, region (2) is a region of metastability, i.e., if the inputs A and B both rise within the region (2), then the output of the MUTEX logic will be unpredictable and propagation delay of the MUTEX logic will be more than TpNM (propagation delay with no metastability) as depicted in FIG. 3. An aperture time (Ta) can be easily defined as occurrence interval of two events in which propagation delay is more than normal propagation delay, i.e., TpNM.
FIG. 4 illustrates another conventional arbitration scheme used in a brute force (waiting) synchronizer 400. The brute force (waiting) synchronizer 400 includes two flip flops 402 and 404. The synchronizer 400 synchronizes an asynchronous input A to a clock Clk. The flip flop 402 samples the input A and gives an output AW. The output AW is sampled by the flip flop 404 and gives the final synchronized signal AS. However, while the input A is being sampled by the flip flop 402, the flip flop 402 may go into a metastability state, depending on the occurrence interval of the input A and the clock Clk. The metastability state may end after a waiting period Tw. Usually the waiting time is one clock cycle, which means that the output of the flip flop 402 is sampled by the flip flop 404 at second Clk rising edge to generate the final synchronized signal AS. In general to implement an N-cycle waiting period, we need N cascaded flip flops in addition to the sampling flip flop 402. Thus the total synchronization latency is N+1 cycles. In this method, if the metastability delay is more than one cycle then a two stage cascaded flip-flop will not ensure correct output. This means that we need to wait for a longer time interval to have a better confidence on output availability.
The conventional arbitration techniques are unable to provide metastability stability when two or more incoming requests occur very closely (or simultaneously). These conventional arbiter techniques provide an unpredictable output with an unpredictable delay during working.
Therefore there is a need of an arbiter module which can overcome metastability stability problems and provide a low metastability failure probability, when two or more asynchronous requests occur very closely.